<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Instrumento extends CI_Controller {

    public function index() {
        exit("Acceso denegado");
    }

// fin index

    public function aplica($instrumento, $agente = null, $aplicacionId = null) {
        /* Funcion para desplegar el instrumento correspondiente */
        $agenteGen = $agente;
        $this->load->model("maestras_model", "maestras", TRUE);
        $this->load->model("aplicaciones_model", "aplicaModel", TRUE);
        $edicion = "";
        $transaccion = "";
        if ($aplicacionId != "undefined") { //si es diferente entonces esta editando
            switch ($instrumento) {
                case '1':
                    $edicion = $this->aplicaModel->extraeAplicacion($aplicacionId, $instrumento);
                    break;
                case '2':
                    $edicion = $this->aplicaModel->extraeAplicacion($aplicacionId, $instrumento);
                    break;
                case '3':
                    $transaccion = $this->maestras->transaccion(4);
                    $edicion = $this->aplicaModel->extraeAplicacion($aplicacionId, $instrumento, $transaccion);
                    break;
                case '5':
                    $edicion = $this->aplicaModel->extraeAplicacion($aplicacionId, $instrumento);
                    break;
                case '6':
                    $edicion = $this->aplicaModel->extraeAplicacion($aplicacionId, $instrumento);
                    break;
            }
        }
        $preguntas = $this->maestras->preguntas($instrumento);
        $modalidades = $this->maestras->modalidades();
        $desInstrumento = $this->maestras->instrumento($instrumento);
        $agente = $this->maestras->agente($agente);
        switch ($instrumento) {
            case '1':
                $this->load->view("view_instrumento_1", array("agente" => $agente, "preguntas" => $preguntas, "instrumento" => $instrumento, "modalidades" => $modalidades, "edicion" => $edicion));
                break;
            case '2':
                $this->load->view("view_instrumento_2", array("agente" => $agente, "preguntas" => $preguntas, "instrumento" => $instrumento, "modalidades" => $modalidades, "edicion" => $edicion));
                break;
            case '3':
                if ($transaccion == "") {
                    $transaccion = $this->maestras->transaccion(4);
                }
                $edicion["agente"] = $agente;
                $edicion["preguntas"] = $preguntas;
                $edicion["instrumento"] = $instrumento;
                $edicion["modalidades"] = $modalidades;
                $edicion["transaccion"] = $transaccion;
                $edicion["municipios"] = $this->maestras->municipios($this->session->userdata("departamentoId"));
                $this->load->view("view_instrumento_3", $edicion);
                break;
            case '4':
                $edicion["preguntas"] = $preguntas;
                $edicion["transaccion"] = $this->maestras->transaccion(1);
                $edicion["edicion"] = $this->aplicaModel->extraeAplicacion('', $instrumento, $edicion["transaccion"]);
                $edicion["modalidades"] = $modalidades;
                $edicion["instrumento"] = $desInstrumento;
                $edicion["municipios"] = $this->maestras->municipios($this->session->userdata("departamentoId"));
                $this->load->view("view_instrumento_4", $edicion);
                break;
            case '5':
                // $agente = tipo del instrumento
                $paises = $this->aplicaModel->paises($this->session->userdata("participanteId"));
                $municipios = $this->maestras->municipios($this->session->userdata("departamentoId"));
                $modalidades = $this->maestras->modalidades();
                $this->load->view("view_instrumento_5", array("modalidades" => $modalidades, "municipios" => $municipios, "paises" => $paises, "tipo" => $agenteGen, "preguntas" => $preguntas, "instrumento" => $desInstrumento, "modalidades" => $modalidades, "edicion" => $edicion));
                break;
            case '6':
                // $agente = tipo del instrumento
                $snies = $this->aplicaModel->snies($this->session->userdata("participanteId"), "asig");
                $this->load->view("view_instrumento_6", array("snies" => $snies, "edicion" => $edicion, "instrumento" => $desInstrumento, "preguntas" => $preguntas));
                break;
            case '7':
                $edicion = $this->aplicaModel->extraeAplicacion('', $instrumento);
                $this->load->view("view_instrumento_1_departamento", array("preguntas" => $preguntas, "instrumento" => $desInstrumento, "edicion" => $edicion));
                break;
            case '8':
                $edicion = $this->aplicaModel->extraeAplicacion('', $instrumento);
                $this->load->view("view_instrumento_1_departamento", array("preguntas" => $preguntas, "instrumento" => $desInstrumento, "edicion" => $edicion));
                break;
        }
        return;
    }

//fin public function aplica($instrumento,$agente){

    public function guardaInstru() {
        /* funcion para guardar todas respuestas del instrumento */
        $this->load->model("maestras_model", "maestras", TRUE);
        $this->load->model("instrumentos_model", "modelInstrumento", TRUE);
        $preguntas = $this->maestras->preguntas($this->input->post("hdInstrumento"));
        $this->modelInstrumento->guardaInstrumento($preguntas);
        return;
    }

// fin public function guardaInstru(){

    public function obtieneInstrumento() {
        /* Funcion para extraer los instrumentos */
        switch ($this->input->post("opc")) {
            case 'edita':
                $this->load->model("maestras_model", "maestras", TRUE);
                $paises = $this->aplicaModel->paises($this->session->userdata("participanteId"));
                $instrumentos = $this->maestras->extraeRegistros($this->input->post("inst"), $this->session->userdata("usuarioId"));
                //Construya el select
                $mostrar = "<select id='regInstrumentos' name='regInstrumentos' onchange=\"fnCargaEdita(this.value);\">";
                $mostrar .= "<option value=''>Seleccione Cargado</option>";
                foreach ($instrumentos->result() as $row)
                    $mostrar .= "<option value='{$row->aplicaInstId}'>{$row->aplicaInstFecha}/{$row->modalidadNombre}/{$row->aplicaInstFechaCreo}</option>";
                $mostrar .= "</select>";
                echo $mostrar;
                break;
        }
        return true;
    }

//fin public function obtieneInstrumento(){

    public function quinto($tipo, $opc = null) {
        /* Funcion para el control del quinto instrumento */
        if ($this->valida()) {
            $this->load->model("maestras_model", "maestras", TRUE);
            $parametros = array();
            switch ($opc) {
                case '1':
                    $parametros["instrumento"] = $this->maestras->extraeRegistros(5, $tipo, '1');
                    $parametros["nombrePais"] = $tipo;
                    $parametros["tipo"] = "pais";
                    break;

                default:
                    $this->load->model("aplicaciones_model", "aplicaModel", TRUE);
                    $paises = $this->aplicaModel->paises($this->session->userdata("participanteId"));
                    if ($paises->num_rows > 0) {
                        $pais = $paises->result();
                        $pais = $pais[0]->paisNombre;
                    }
                    else
                        $pais = "No tiene asignado Paises";
                    if ($this->session->userdata("usuarioId_externo")) {
                        $tmp = $this->session->userdata("departamentoId");
                        $opc = '2';
                    } else {
                        $tmp = $this->session->userdata("usuarioId");
                        $opc = $tipo;
                    }
                    $parametros["instrumento"] = $this->maestras->extraeRegistros(5, $tmp, $opc);
                    $parametros["nombrePais"] = $pais;
                    $parametros["tipo"] = $tipo;
                    break;
            }
            $this->load->view("view_quinto", $parametros);
        }
    }

//fin public function quinta(){

    private function valida() {
        /* Funcion para validar que la session este activa */
        if ($this->session->userdata("usuarioId"))
            return true;
        else
            return false;
    }

    public function extras($instrumentoId, $tipo = null) {
        /* Funcion para mostrar los complementos de un instrumento */
        if ($this->valida()) {
            $this->load->model("aplicaciones_model", "aplicaModel", TRUE);
            $tmp = ($this->session->userdata("usuarioId_externo")) ? $this->session->userdata("departamentoId") : $this->session->userdata("participanteId");
            switch ($instrumentoId) {
                case '5':
                    if ($tipo == "pais") {
                        $paises = $this->aplicaModel->paises($this->session->userdata("participanteId"));
                        $this->load->view("view_listadoPais", array("partId" => $tmp, "paises" => $paises, "tipo" => $tipo));
                    } elseif ($tipo == "departamento") {
                        $this->load->view("view_listadoDep", array("partId" => $tmp, "tipo" => $tipo));
                    }
                    break;
                case '6':
                    $snies = $this->aplicaModel->snies($this->session->userdata("participanteId"), "dep");
                    $this->load->view("view_listadoSnies", array("partId" => $tmp, "snies" => $snies));
                    break;
            }
            return true;
        }
    }

//fin public function extras($instrumentoId,$tipo){

    public function sexto($programaId = null) {
        /* Funcion para el control del quinto instrumento */
        if ($this->valida()) {
            $this->load->model("maestras_model", "maestras", TRUE);
            if ($programaId != null) {
                $tmp = $programaId;
                $opc = '3';
            } else {
                $tmp = $this->session->userdata("usuarioId");
                $opc = ' ';
            }
            $instrumentos = $this->maestras->extraeRegistros(6, $tmp, $opc);
            $this->load->view("view_sexto", array("instrumento" => $instrumentos));
        }
    }

//fin public function quinta(){
    public function adicionales($instrumento, $instrumentoId) {
        /* Funcion para mostrar los instrumentos adicionales */
        if ($this->valida()) {
            $parametros = array();
            $this->load->model("aplicaciones_model", "aplicaModel", TRUE);
            $this->load->model("maestras_model", "maestras", TRUE);
            if ($instrumento == 10) {
                $parametros["aplicaciones"] = $this->aplicaModel->extraCabAplicaciones($instrumentoId, $this->session->userdata("departamentoId"), $instrumentoId);
                $parametros["opc"] = '1';
            } else {
                $parametros["aplicaciones"] = $this->maestras->modalidadesUsr($this->session->userdata("departamentoId"), $instrumentoId);
            }
            $parametros["titulo"] = $instrumento;
            $parametros["vista"] = $instrumentoId;
            $parametros["orden"] = $instrumento;
            $this->load->view("view_modalidades_complementario", $parametros);
        }
    }

    public function cargaAdicional($instrumento, $instrumentoId, $modalidadId) {
        /* Funcion para mostrar los instrumentos adicionales */
        if ($this->valida()) {
            $parametros = array();
            $this->load->model("aplicaciones_model", "aplicaModel", TRUE);
            $this->load->model("maestras_model", "maestras", TRUE);
            switch ($instrumento) {
                case '1':
                    $parametros = $this->fnparametros($instrumentoId, 1, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_1_complementario", $parametros);
                    break;
                case '2':
                    $parametros = $this->fnparametros($instrumentoId, 1, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_2_complementario", $parametros);
                    break;
                case '3':
                    $parametros = $this->fnparametros($instrumentoId, 3, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_3_complementario", $parametros);
                    break;
                case '4':
                    $parametros = $this->fnparametros($instrumentoId, 3, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_4_complementario", $parametros);
                    break;
                case '5':
                    $parametros = $this->fnparametros($instrumentoId, 3, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_5_complementario", $parametros);
                    break;
                case '6':
                    $parametros = $this->fnparametros($instrumentoId, 4, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_6_complementario", $parametros);
                    break;
                case '7':
                    $parametros = $this->fnparametros($instrumentoId, 3, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_7_complementario", $parametros);
                    break;
                case '8':
                    $parametros = $this->fnparametros($instrumentoId, 3, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_7_complementario", $parametros);
                    break;
                case '9':
                    $parametros = $this->fnparametros($instrumentoId, 4, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_9_complementario", $parametros);
                    break;
                case '10':
                    $this->load->model("aplicaciones_model", "aplicaModel", TRUE);
                    $parametros = $this->fnparametros($instrumentoId, 5, '', $modalidadId);
                    $parametros["numero"] = $instrumento;
                    $this->load->view("view_instrumento_10_complementario", $parametros);
                    break;
            }
        }
    }

//fin public function adicionales($instrumento) {

    private function fnparametros($instrumentoId, $opc = null, $transaccion = null, $modalidadId = null) {
        /* Funcion para extraer la informacion */
        $parametros = array();
        switch ($opc) {
            case '3':
                $parametros["instrumento2"] = $this->aplicaModel->extraCabAplicaciones(2, $this->session->userdata("usuarioId"), $modalidadId);
                $parametros["instrumento1"] = $this->aplicaModel->extraCabAplicaciones(1, $this->session->userdata("usuarioId"), $modalidadId);
                $parametros["instrumento3"] = $this->aplicaModel->extraCabAplicaciones(3, $this->session->userdata("usuarioId"), $modalidadId);
                break;
            case '4':
                $parametros["instrumento2"] = $this->aplicaModel->extraCabAplicaciones(2, $this->session->userdata("usuarioId"), $modalidadId);
                $parametros["instrumento3"] = $this->aplicaModel->extraCabAplicaciones(3, $this->session->userdata("usuarioId"), $modalidadId);
                $parametros["modalidades"] = $this->maestras->modalidades();
                break;
            case '5':
                $parametros["instrumento3"] = $this->aplicaModel->extraCabAplicaciones(3, $this->session->userdata("usuarioId"), $modalidadId);
                $parametros["transaccion"] = $this->maestras->transaccion(1);
                break;
            default:
                $parametros["instrumento2"] = $this->aplicaModel->extraCabAplicaciones(2, $this->session->userdata("usuarioId"), $modalidadId);
                $parametros["instrumento3"] = $this->aplicaModel->extraCabAplicaciones(3, $this->session->userdata("usuarioId"), $modalidadId);
                break;
        }
        $parametros["preguntas"] = $this->maestras->preguntas($instrumentoId);
        $parametros["municipios"] = $this->maestras->municipios($this->session->userdata("departamentoId"));
        if ($this->session->userdata("usuarioId_externo")) {
            $parametros["usuario"] = $this->maestras->infoUsuario($this->session->userdata("departamentoId"), '3');
        } else {
            $parametros["usuario"] = $this->maestras->infoUsuario($this->session->userdata("participanteId"));
        }
        $parametros["instrumento"] = $this->maestras->instrumento($instrumentoId);
        $parametros["modalidad"] = $this->maestras->modalidadInfo($modalidadId);
        $parametros["transaccion"] = (isset($parametros["transaccion"])) ? $parametros["transaccion"] : "";
        $parametros["edicion"] = $this->aplicaModel->extraeAplicacion($instrumentoId, 9, $parametros["transaccion"], $modalidadId);
        return $parametros;
    }

//fin private function fnparametros($instrumentoId, $opc = null) {

    public function creaTercero($opc = null) {
        /* Carga todos los instrumentos 3 creados */
        $this->load->model("aplicaciones_model", "aplicaModel", TRUE);
        $parametros = ($opc == '1') ? $this->session->userdata("departamentoId") : $this->session->userdata("usuarioId");
        $instrumentos3 = $this->aplicaModel->extraeTerceros($parametros, $opc);
        $this->load->view("view_instrumento_tres", array("aplicaciones" => $instrumentos3));
    }

}

//fin class
?>
